﻿using System.Collections.Generic;
using System.Drawing.Imaging;
using System.Linq;

namespace CloudShot.Utils
{
  public static class ImageFormatUtils
  {
    private static readonly Dictionary<string, ImageFormat> _formatsDictionary = new Dictionary<string, ImageFormat>();

    static ImageFormatUtils()
    {
      //TODO: плохо так делать, потратил час чтобы понять почему у меня не сохраняется gif, оказалось что надо не забыть прописать формат
      _formatsDictionary.Add(".jpg", ImageFormat.Jpeg);
      _formatsDictionary.Add(".png", ImageFormat.Png);
      _formatsDictionary.Add(".bmp", ImageFormat.Bmp);
      _formatsDictionary.Add(".gif", ImageFormat.Gif);
    }

    public static string ToSaveFilePattern(params ImageFormat[] formats)
    {
      return string.Join("|", formats.Select(f => string.Format("{0}|*{1}", f, f.GetExtension())));
    }

    public static ImageFormat GetImageFormat(this string extension)
    {
      ImageFormat format;
      _formatsDictionary.TryGetValue(extension, out format);
      return format;
    }

    public static string GetExtension(this ImageFormat format)
    {
      return _formatsDictionary.Where(p => p.Value.Equals(format)).Select(p => p.Key).FirstOrDefault();
    }
  }
}